// 对 toast 的代码进行一定程度的封装

import { Show_Toast } from "@/store/ActionType";
import { useDispatch } from "react-redux";
import { Dispatch } from "redux";

// 让 弹出 toast 的过程可以复用
// 这是一个自定义 hook
export function useToast() {
  // hook必须要在自定义hook或者是函数组件里面才能使用
  // 给useDispatch加上泛型之后，约束了dispatch调用的时候的参数类型
  const dispatch = useDispatch<Dispatch<IToastAction>>();
  return (message: string, type: ToastType) => {
    dispatch({
      type: Show_Toast,
      pyload: {
        type,
        message,
      },
    });
  };
}
